// 判断是否是普通对象
export const isPlainObject = (obj) => {
    let proto, Ctor;
    // 类型判断
    if (!obj ||
        Object.prototype.toString.call(obj) !== "[object Object]")
        return false;
    // 原型对象判断    
    proto = Object.getPrototypeOf(obj);
    // proto为null的情况，说明是最上层的原型链。
    if (!proto) return true;
    Ctor = proto.hasOwnProperty("constructor") && proto.constructor;
    return typeof Ctor === "function" && Ctor === Object;
}

// 判断是否是对象
export const isObject = (val) => val !== null && typeof val === 'object';

// 判断是否是字符串
export const isString = (val) => typeof val === 'string';


